;:sys36864
	;.opt oo
	*= 50000
such	=52000
make	=52100
memo	=52200
s	=2
t1	=4
t2	=181
e	=254
reple	=247
ymm	=248
ym2	=249
lens	=250
lenm	=251
flag	=252
flag2	=253
	jmp how
	jmp defs
	jmp defr
	jmp find
	lda #<tok
	ldy #>tok
	jsr $ab1e
	lda tof
	eor #-1
	sta tof
	bne an
	lda #"u"
	jsr $ffd2
	lda #"s"
	.byt $2c
an	lda #"n"
	jsr $ffd2
	jmp $aad7
txt	.byt 13
	.byte "find & replace c64  (c) nh-080790-arr"
	.byt 13
	.byte "version 2 12.90"
	.byt 13,13
	.byte " sys 50003,suchbegriff"
	.byt 13
	.byte " sys 50006,ersatzbegriff"
	.byt 13
	.byte " sys 50009: suchen ohne ersetzen"
	.byt 13
	.byte " sys 50012: tokenwandlung ein/aus"
	.byt 13,0
errt	.byte "preparatioN"
lint	.byt 13
	.byte "in line "
	brk
okt	.byte " found"
	.byt 13,0
tok	.byte "tokenwandlung a"
	brk
lae	brk
tof	.byt -1
yme	brk
diff	brk
how	lda #<txt
	ldy #>txt
	jmp $ab1e
defs	jsr $aefd
	ldx #0
suchs	jsr cat
	beq overs
	sta such,x
	inx
	jsr cet
	bne suchs
overs	sta such,x
	txa
	beq err
	stx lens
	inx
	stx flag
	lda tof
	bne good
	lda #<such
	ldy #>such
	jsr convert
	ldy lae
	dey
	sty lens
good	rts
defr	lda #0
	cmp flag
	bne cont
err	lda #<errt
	sta 34
	lda #>errt
	jmp $a445
cont	sta flag
	sta reple
	jsr $aefd
	jsr $aad7
	ldx #0
suchm	jsr cat
	beq overm
	sta make,x
	inx
	jsr cet
	bne suchm
overm	sta make,x
	stx lenm
	lda tof
	bne begin
	lda #<make
	ldy #>make
	jsr convert
	ldy lae
	dey
	sty lenm
	jmp begin
find	lda flag
	beq err
	sta reple
begin	lda 43
	sta s
	lda 44
	sta s+1
zeile	lda #0
	sta flag2
	lda #"\x91"
	jsr $ffd2
	ldy #1
	lda (s),y
	bne weiter
	jsr 42291
	clc
	lda 34
	adc #2
	sta 45
	sta 47
	sta 49
	lda 35
	adc #0
	sta 46
	sta 48
	sta 50
	jsr $a81d
	ldx #$19
	stx $16
	jsr $a687
	ldx 214
	inx
	jsr 59903
	jmp 57741
weiter	lda #<lint
	ldy #>lint
	jsr $ab1e
	ldy #2
	lda (s),y
	tax
	iny
	lda (s),y
	jsr $bdcd
	ldy #4
se1	lda (s),y
	beq se5
	sty yme
	ldx #0
se2	lda such,x
	beq se3
	cmp (s),y
	bne se4
	inx
	iny
	bne se2
se4	ldy yme
se4a	iny
	bne se1
se5	iny
	tya
	clc
	adc s
	sta s
	bcc se6
	inc s+1
se6	jmp zeile
se3	lda #0
	cmp reple
	bne re2
	sta diff
	lda lens
	cmp lenm
	beq se7
	bcc se8
	jsr delete
	jmp se7
se8	jsr insert
se7	ldx #0
	ldy yme
repl	lda make,x
	beq re2
	sta (s),y
	iny
	inx
	bne repl
re2	lda flag2
	bne re2a
	lda #<okt
	ldy #>okt
	jsr $ab1e
	inc flag2
re2a	lda yme
	clc
	adc diff
	tay
	bne se4a
cet	inc $7a
	bne la1
	inc $7b
la1	rts
cat	ldy #0
	lda ($7a),y
	rts
insert	lda lenm
	sec
	sbc lens
	sta diff
	pha
	lda yme
	clc
	adc s
	sta e
	lda s+1
	adc #0
	sta e+1
	ldx 45
	stx t1
	ldx 46
	stx t1+1
	pla
	clc
	adc 45
	sta 45
	sta t2
	lda 46
	adc #0
	sta 46
	sta t2+1
	ldy #0
icopy	lda e+1
	cmp t1+1
	bcc i1
	lda e
	cmp t1
	bcc i1
	rts
i1	lda (t1),y
	sta (t2),y
	lda t1
	bne i2
	dec t1+1
i2	dec t1
	lda t2
	bne i3
	dec t2+1
i3	dec t2
	jmp icopy
delete	lda lens
	sec
	sbc lenm
	sta diff
	pha
	dec diff
	lda yme
	clc
	adc s
	sta t1
	lda s+1
	adc #0
	sta t1+1
	pla
	clc
	adc t1
	sta t2
	lda t1+1
	adc #0
	sta t2+1
	ldy #0
dcopy	lda t2+1
	cmp 46
	bcc d1
	lda t2
	cmp 45
	bcc d1
	lda t1
	sta 45
	lda t1+1
	sta 46
	rts
d1	lda (t2),y
	sta (t1),y
	inc t1
	bne d2
	inc t1+1
d2	inc t2
	bne d3
	inc t2+1
d3	bne dcopy
convert	sta s
	sty s+1
	ldy #-1
tr1	iny
	lda (s),y
	sta memo,y
	bne tr1
	ldy #0
	sty $f
	sty lae
lp1	lda memo,y
	beq rein
	bpl so
	cmp #-1
	beq so
	bit $f
	bmi so
	sec
	sbc #$7f
	tax
	sty ym2
	ldy #-1
a72c	dex
	beq a737
a72f	iny
	lda $a09e,y
	bpl a72f
	bmi a72c
a737	iny
	lda $a09e,y
	bmi end
	jsr rein
	jmp a737
so	cmp #34
	bne so2
	lda $f
	eor #-1
	sta $f
	lda #34
so2	jsr rein
	jmp so5
end	and #127
	jsr rein
	ldy ym2
so5	iny
	bne lp1
rein	sty ymm
	ldy #0
	sta (s),y
	inc s
	bne r2
	inc s+1
r2	inc lae
	ldy ymm
	rts
